package ln.javatest.day06.demo06;
/*
==是进行对象的地址值比较，如果确实需要字符串的内容比较，可以使用两个方法
public boolean equals(Object obj)：参数可以是任何对象，只有参数是一个字符串并且内容相同的才会给true，否则返回false。
注意事项：
1.任何对象都能用Object进行接收。
2.equals方法具有对称性，也就是a.equals(b)等同与b.equals(a).
3.如果比较双方一个常量一个变量，推荐把常量字符串写在前面。
推荐：“abc".equals(str);不推荐str.equals("abc");

public boolean equalsIgnoreCase(String str):忽略大小写，进行内容比较
*/

public class Demo01StringEquals {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hello";
        char[] charArray = {'H','e','l','l','o'};
        String str3 = new String(charArray);
        System.out.println(str1.equals(str2)); //true
        //下面这句如果直接==比较，结果为false，因为==是比较地址
        System.out.println(str2.equals(str3));  //true
        System.out.println("Hello".equals(str1)); //true
        //报错 NullPointerException 空指针异常，所以，推荐前面写常量
        String str = null;
//        System.out.println(str.equals("abc")); //报错 NullPointerException 空指针异常
        System.out.println("abc".equals(str)); //false
        //注意：只有英文字母区分大小写
        String strA = "Java";
        String strB = "java";
        System.out.println(strA.equals(strB)); //false
        System.out.println(strA.equalsIgnoreCase(strB)); //true
    }
}
